1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.google.common.collect.testing.testers;
18
19 import static com.google.common.collect.testing.features.CollectionFeature.ALLOWS_NULL_VALUES;
20 import static com.google.common.collect.testing.features.CollectionFeature.SUPPORTS_ADD;
21 import static com.google.common.collect.testing.features.CollectionSize.ZERO;
22
23 import com.google.common.annotations.GwtCompatible;
24 import com.google.common.annotations.GwtIncompatible;
25 import com.google.common.collect.testing.Helpers;
26 import com.google.common.collect.testing.features.CollectionFeature;
27 import com.google.common.collect.testing.features.CollectionSize;
28
29 import java.lang.reflect.Method;
30 import java.util.List;
31
32
33
34
35
36
37
38
39 @SuppressWarnings("unchecked")
40 @GwtCompatible(emulated = true)
41 public class ListAddTester<E> extends AbstractListTester<E> {
42 @CollectionFeature.Require(SUPPORTS_ADD)
43 @CollectionSize.Require(absent = ZERO)
44 public void testAdd_supportedPresent() {
45 assertTrue("add(present) should return true", getList().add(samples.e0));
46 expectAdded(samples.e0);
47 }
48
49 @CollectionFeature.Require(absent = SUPPORTS_ADD)
50 @CollectionSize.Require(absent = ZERO)
51
52
53
54
55 public void testAdd_unsupportedPresent() {
56 try {
57 getList().add(samples.e0);
58 fail("add(present) should throw");
59 } catch (UnsupportedOperationException expected) {
60 }
61 }
62
63 @CollectionFeature.Require(value = {SUPPORTS_ADD, ALLOWS_NULL_VALUES})
64 @CollectionSize.Require(absent = ZERO)
65 public void testAdd_supportedNullPresent() {
66 E[] array = createArrayWithNullElement();
67 collection = getSubjectGenerator().create(array);
68 assertTrue("add(nullPresent) should return true", getList().add(null));
69
70 List<E> expected = Helpers.copyToList(array);
71 expected.add(null);
72 expectContents(expected);
73 }
74
75
76
77
78
79
80 @GwtIncompatible("reflection")
81 public static Method getAddSupportedNullPresentMethod() {
82 return Helpers.getMethod(ListAddTester.class, "testAdd_supportedNullPresent");
83 }
84 }